package com.platform.modules.prj.pojo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableField;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @Auther: wangLc
 * @Date: 2019-7-20 12:16
 * @Description: 勘察文件审查合格书DTO
 */
@Data
@ApiModel(value = "报告书DTO", description = "报告书DTO")
public class ProjectReport {
    @ApiModelProperty(value = "申报ID")
    private String decId;

    @ApiModelProperty(value = "工程项目名称")
    private String prjName;
    
    @ApiModelProperty(value = "工程项目类别-(工程类别)")
    private String prjCategory;
    
    @ApiModelProperty(value = "总投资（万元）")
    private BigDecimal allInvest;
    
    @ApiModelProperty(value = "本次送审投资额（万元）")
    private BigDecimal oneTimeInvest;
    
    @ApiModelProperty(value = "抗震设防专项论证")
    private Integer antiSeismicFortificationProofFlag;
    
    @ApiModelProperty(value = "设防烈度（度）")
    private String fortificationIntensity;
    
    @ApiModelProperty(value = "本次送审面积（m²）")
    private BigDecimal allArea;
    
    @ApiModelProperty(value = "地上面积")
    private BigDecimal landArea;
    
    @ApiModelProperty(value = "地下面积")
    private BigDecimal undergroundArea;
    
    @ApiModelProperty(value = "工程勘察等级")
    private String prjKcLevel;
    
    @ApiModelProperty(value = "含建筑节能设计")
    private Integer buildingEnergyDesignFlag;
    
    @ApiModelProperty(value = "是否超限高层")
    private Integer overHignFlag;
    
    @ApiModelProperty(value = "是否绿色建筑")
    private Integer greenBuildingFlag;
    
    
    @ApiModelProperty(value = "绿色建筑星级")
    private String greenBuildingLevel;
    
    @ApiModelProperty(value = "人防工程等级")
    private String prjRfLevel;
    
    @ApiModelProperty(value = "战时用途")
    private String wartimePurpose;
    
    @ApiModelProperty(value = "人防工程面积")
    private String prjRfArea;
    
    @ApiModelProperty(value = "平时用途")
    private String peacetimePurpose;
    
    @ApiModelProperty(value = "工程描述")
    private String prjDesc;
    
    @ApiModelProperty(value = "建设地点")
    private String address;
    
    @ApiModelProperty(value = "年")
    private String year;

    @ApiModelProperty(value = "月")  
    private String month;

    @ApiModelProperty(value = "日")  
    private String day;
    
    @ApiModelProperty(value = "甲方(建设单位或者委托方)")
    private String firstParty;

    @ApiModelProperty(value = "审图机构")
    private String checkOrgName;

    @ApiModelProperty(value = "建设单位")
    private String buildCorpName;

    @ApiModelProperty(value = "设计单位")
    private String sjCorpName;

    @ApiModelProperty(value = "勘察单位名称")
    private String kcCorpName;
    
    @ApiModelProperty(value = "审查完成时间")
    private String checkFinishTime;

    @ApiModelProperty(value = "意见列表")
    List<PrjDrawingAdvise> prjDrawingAdviseList;
    
    @ApiModelProperty(value = "审查轮数列表")
    List<PrjSpecResult> prjSpecResultList;
    
    @ApiModelProperty(value = "审查轮数列表")
    List<PrjSpec> prjSpecList;
    
    @ApiModelProperty(value = "审查时间")
    private String scTime;
    
  
    @Data
    @ApiModel(value = "审查意见DTO", description = "审查意见DTO")
    public static class PrjDrawingAdvise {

        @ApiModelProperty(value = "专业名称")
        private String specialtyName;

        @ApiModelProperty(value = "审查人")
        private String expertScName;

        @ApiModelProperty(value = "审核人")
        private String expertShName;
        
        @ApiModelProperty(value = "技术负责人")
        private String leaderName;
        
        @ApiModelProperty(value = "审查次数")
        private Integer checkTimes;
        
        @ApiModelProperty(value = "审查序号")
        private Integer checkNo;
        
        @ApiModelProperty(value = "图号")
        private String drawingNum;
        
        @ApiModelProperty(value = "条文性质")
        private String articleType;
        
        @ApiModelProperty(value = "条文编码")
        private String tiaowenNum;
        
        @ApiModelProperty(value = "审查意见")  
        private String adviseTxt;
        
    }
    
    @Data
    @ApiModel(value = "审查过程记录DTO", description = "审查过程记录DTO")
    public static class PrjSpecResult {
        
    	@ApiModelProperty(value = "序号")
        private Integer resultNo;
    		
    	@ApiModelProperty(value = "审查轮数")
        private Integer checkTimes;
    	
        @ApiModelProperty(value = "审查完成时间")
        private String leaderResultTime;
        
    }
    
    @Data
    @ApiModel(value = "审查专业DTO", description = "审查专业DTO")
    public static class PrjSpec{
        
    	 @ApiModelProperty(value = "专业Id")
         private String specialtyId;
    	
    	 @ApiModelProperty(value = "审查人姓名")
    	 private String expertScName;
    	 
    	 @ApiModelProperty(value = "审核人姓名")
    	 private String expertShName;
    	 
    	 @ApiModelProperty(value = "技术负责人姓名")
    	 private String leaderName;
    	 
    	 @ApiModelProperty(value = "专业名称")
    	 private String specialtyName;
        
        @ApiModelProperty(value = "意见列表")
        List<PrjDrawingAdvise> prjDrawingAdviseList;
    }

}
